(defvar table '())

(defun readTableIn (filename)
  (setq table '());empty table  
  (let ((in (open filename :if-does-not-exist nil)))
    (when in
      (loop for line = (read-line in nil);Will keep doing loop while there is something to read
            while line do
            (addCase (read-from-string line)))
      (close in))))
(defun readLibraryIn (filename)
  (setq table '());empty table  
  (let ((in (open filename :if-does-not-exist nil)))
    (when in
      (loop for line = (read-line in nil);Will keep doing loop while there is something to read
            while line do
	   (loop for part in (read-from-string line) do
		(addCase part)))
      (close in))))

;;;will add case to the table
;;; @line: ((key value)*)
(defun addCase (line);add list into the table
    (let ((temp (make-hash-table)))
      (do ((value line (cdr value)))
          ((not value))
          (setf (gethash (caar value) temp) (cadar value)));Will set the key to value
      (setq table (cons temp
                        table))))